home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / vrs501.zip / VRS-M13.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-08  |  6KB  |  345 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.  
  36. ;------------------------------------------------------------------------------
  37.  
  38.     Goto LABEL001
  39.     End
  40.     If (0 == 0) STRING001 = "NO"
  41.     If (0 == 1) STRING001 = "YES"
  42.  
  43.     EndFunc
  44.  
  45.     :LABEL001
  46.     STRING002 = String(PcbNode())
  47.     If (PcbNode() == 0) STRING002 = "A"
  48.     STRING007 = String(Random(1000)) + "X" + STRING002
  49.     STRING003 = GetEnv(STRING002 + "RECNO")
  50.     STRING003 = ToInteger(STRING003)
  51.     DCloseAll
  52.     DOpen 0, PPEPath() + "USER.DBF", 0
  53.     DGo 0, STRING003
  54.     If (Trim(DGet(0, "ATT_DEF"), " ") == "S") Goto LABEL006
  55.     DnCreate 0, PPEPath() + STRING007 + ".NDX", "HANDLE"
  56.     DGo 0, STRING003
  57.     STRING005 = Trim(DGet(0, "HANDLE"), " ")
  58.     PrintLn "            @X0AName                       @X0BTube #"
  59.     PrintLn "            @X09─────────────────────────────────────@X0F"
  60.     DTop 0
  61.     :LABEL002
  62.     If (DEof(0)) Goto LABEL003
  63.     DSkip 0, 1
  64.     STRING008 = Trim(DGet(0, "HANDLE"), " ")
  65.     STRING008 = Mixed(STRING008)
  66.     STRING010 = Trim(DGet(0, "ONLINE"), " ")
  67.     If (STRING010 > 0) PrintLn "@POS:13@@X0E", 0, "@POS:32@@X0A", STRING008, "@POS:49@@X0B", STRING010
  68.     Goto LABEL002
  69.     :LABEL003
  70.     Newline
  71.     :LABEL004
  72.     InputStr "@X0AWho do you want to fight? @X0F _", STRING004, 11, 25, Mask_Ascii(), 0 + 8
  73.     Newlines 2
  74.     If (STRING004 == "") Goto LABEL014
  75.     If (STRING004 == STRING005) Then
  76.         PrintLn "You can't fight yourself!"
  77.         PrintLn 
  78.         Call PPEPath() + "VRS-M19.PPE"
  79.         Goto LABEL004
  80.     Endif
  81.     DTag 0, STRING007
  82.     DSeek 0, STRING004
  83.     If (DChkStat(0) > 0) Then
  84.         PrintLn "@X0CUSER NOT FOUND@X0F"
  85.         Goto LABEL004
  86.     Endif
  87.     DGet 0, "HANDLE", STRING004
  88.     INTEGER001 = DRecNo(0)
  89.     DPut 0, "OPP_NODE", STRING003
  90.     DPut 0, "MESSAGE", "@X0EYOU HAVE BEEN SUMMONED TO SINGLE COMBAT@X0F"
  91.     DPut 0, "ATT_DEF", "S"
  92.     DTop 0
  93.     DGo 0, STRING003
  94.     PrintLn 
  95.     PrintLn "@X0B", Trim(STRING004, " "), " @X03Has been informed of your summons....@X0F"
  96.     :LABEL005
  97.     DTop 0
  98.     DGo 0, STRING003
  99.     INTEGER004 = 0
  100.     PrintLn 
  101.     InputStr "@X02(@X0DW@X02)@X0Aait or @X02(@X0DQ@X02)@X0Auit back  @X02>_", STRING009, 11, 1, "WQ", 0 + 8
  102.     If (STRING009 == "Q") Goto LABEL014
  103.     Print "                 "
  104.     While (INTEGER004 <= 10) Do
  105.         Print "."
  106.         DTop 0
  107.         DGo 0, STRING003
  108.         DGet 0, "ATT_DEF", STRING012
  109.         Delay (1 * 182) / 10
  110.         If (STRING012 == "A") Goto LABEL007
  111.         If (DGet(0, "ATT_DEF") == "N") Goto LABEL010
  112.         Inc INTEGER004
  113.     EndWhile
  114.     Goto LABEL005
  115.     :LABEL006
  116.     If (DGet(0, "ATT_DEF") == "S") Then
  117.         INTEGER001 = Trim(DGet(0, "OPP_NODE"), " ")
  118.         DPut 0, "ATT_DEF", "D"
  119.         DTop 0
  120.         DGo 0, INTEGER001
  121.         DPut 0, "ATT_DEF", "A"
  122.         DTop 0
  123.         DGo 0, STRING003
  124.         Goto LABEL007
  125.     Endif
  126.     :LABEL007
  127.     DCloseAll
  128.     DOpen 0, PPEPath() + "USER.DBF", 0
  129.     DTop 0
  130.     DGo 0, STRING003
  131.     If (DGet(0, "ATT_DEF") == "X") Goto LABEL014
  132.     If (DGet(0, "HITPTS_L") < 1) Goto LABEL013
  133.     Cls
  134.     PrintLn 
  135.     PrintLn "LIFE LEFT: ", DGet(0, "HITPTS_L")
  136.     PrintLn "RESULTS: ", DGet(0, "MESSAGE")
  137.     PrintLn "@X02(@X0DA@X02)@X0Attack  @X02(@X0DR@X02)@X0AUN AWAY@X0F "
  138.     InputStr "@X02(@X0DA@X02)@X0Attack or @X02(@X0DR@X02)@X0Aun away @X02>", STRING011, 11, 1, "AR", 0 + 8
  139.     Select Case (STRING011)
  140.         Case "A"
  141.             Goto LABEL008
  142.         Case "R"
  143.             Gosub LABEL012
  144.     End Select
  145.     :LABEL008
  146.     DTop 0
  147.     DGo 0, STRING003
  148.     If (DGet(0, "HITPTS_L") <= 0) Goto LABEL013
  149.     If (DGet(0, "ATT_DEF") == "A") Then
  150.         INTEGER002 = Random(100) - DGet(0, "LEVEL")
  151.         If (INTEGER002 <= 50) Then
  152.             INTEGER002 = Random(10)
  153.             STRING006 = "@X0CYou were hit for@X0B " + INTEGER002 + "@X0C points!@X0F"
  154.             DPut 0, "ATT_DEF", "D"
  155.             DTop 0
  156.             DGo 0, INTEGER001
  157.             DPut 0, "MESSAGE", STRING006
  158.             DPut 0, "HITPTS_L", DGet(0, "HITPTS_L") - INTEGER002
  159.             If (DGet(0, "HITPTS_L") < 1) Goto LABEL011
  160.             DPut 0, "ATT_DEF", "A"
  161.             Goto LABEL009
  162.         Endif
  163.         If (INTEGER002 > 50) Then
  164.             STRING006 = "@X0B" + STRING004 + " @X0EMissed you!@X0F"
  165.             DPut 0, "ATT_DEF", "D"
  166.             DTop 0
  167.             DGo 0, INTEGER001
  168.             DPut 0, "MESSAGE", STRING006
  169.             DPut 0, "ATT_DEF", "A"
  170.         Endif
  171.         :LABEL009
  172.         Goto LABEL007
  173.     Endif
  174.     Goto LABEL007
  175.     :LABEL010
  176.     Cls
  177.     Newlines 5
  178.     PrintLn "@X0BYour challenge was declined@X0F"
  179.     Newlines 5
  180.     Call PPEPath() + "VRS-M19.PPE"
  181.     Goto LABEL014
  182.     :LABEL011
  183.     DTop 0
  184.     DGo 0, STRING003
  185.     PrintLn 
  186.     PrintLn "@X0CYou have killed your opponent!@X0F"
  187.     DTop 0
  188.     DGo 0, INTEGER001
  189.     DGet 0, "EXP", INTEGER003
  190.     INTEGER003 = INTEGER003 / 10
  191.     PrintLn "@X0AYou gained @X0E:@X0C ", INTEGER003, "@X0A experience points!@X0F"
  192.     DTop 0
  193.     DGo 0, STRING003
  194.     DPut 0, "EXP", DGet(0, "EXP") + INTEGER003
  195.     DTop 0
  196.     DGo 0, INTEGER001
  197.     DGet 0, "CASH", INTEGER003
  198.     PrintLn "@X0AYou gained @X0E:@X0C ", INTEGER003, "@X0A cash!@X0F"
  199.     DPut 0, "ATT_DEF", "X"
  200.     DPut 0, "P_FTS_L", DGet(0, "P_FTS_L") - 1
  201.     DTop 0
  202.     DGo 0, STRING003
  203.     DPut 0, "CASH", DGet(0, "CASH") + INTEGER003
  204.     DPut 0, "ATT_DEF", "X"
  205.     PrintLn "@X09And we all go up in rank....@X0F"
  206.     PrintLn 
  207.     Call PPEPath() + "VRS-M19.PPE"
  208.     Goto LABEL014
  209.     :LABEL012
  210.     INTEGER003 = Random(100)
  211.     If (INTEGER003 < 50) Then
  212.         DTop 0
  213.         DGo 0, INTEGER001
  214.         DPut 0, "MESSAGE", "@X0EI AVOIDED YOU!  HAH!@X0F"
  215.     Else
  216.         If (INTEGER003 >= 51) Return
  217.         :LABEL013
  218.         DTop 0
  219.         DGo 0, STRING003
  220.         DPut 0, "VITALITY", "N"
  221.         DPut 0, "HITPTS_L", 0
  222.         DPut 0, "CASH", 0
  223.         DPut 0, "WEAPN1", 0
  224.         DPut 0, "WEAPN2", 0
  225.         DPut 0, "S_W_NUMBER", 0
  226.         DPut 0, "WEAPT1", "NONE"
  227.         DPut 0, "WEAPT2", "NONE"
  228.         DPut 0, "S_W_NAME", "NONE"
  229.         DPut 0, "WEAPA1", 0
  230.         DPut 0, "WEAPA2", 0
  231.         DPut 0, "S_W_AMMO", 0
  232.         DPut 0, "WEAPD1", 0
  233.         DPut 0, "WEAPD2", 0
  234.         DPut 0, "S_W_DAMAGE", 0
  235.         DPut 0, "ARMOR_D", 0
  236.         DPut 0, "ARMOR_N", "NONE"
  237.         DPut 0, "ATT_DEF", "X"
  238.         DTop 0
  239.         DGo 0, INTEGER001
  240.         DPut 0, "ATT_DEF", "X"
  241.         DTop 0
  242.         DGo 0, STRING003
  243.         PrintLn 
  244.         PrintLn "@X8CYou have died@X0F"
  245.         PrintLn "@X0EYou lost all of the cash you were carrying...."
  246.         PrintLn "@X0BAll your weapons...."
  247.         PrintLn "@X0AAnd your armor...."
  248.         PrintLn 
  249.         PrintLn "@X0CPerhaps tommrrow you'll fare better...."
  250.         PrintLn 
  251.         Call PPEPath() + "VRS-M19.PPE"
  252.     Endif
  253.     :LABEL014
  254.     DTop 0
  255.     DGo 0, STRING003
  256.     DPut 0, "MESSAGE", " "
  257.     DPut 0, "ATT_DEF", " "
  258.     DPut 0, "OPP_NODE", 0
  259.     DCloseAll
  260.     Delete PPEPath() + STRING007 + ".NDX"
  261.     End
  262.  
  263. ;------------------------------------------------------------------------------
  264. ;
  265. ; Usage report (before postprocessing)
  266. ;
  267. ; ■ Statements used :
  268. ;
  269. ;    2       End
  270. ;    2       Cls
  271. ;    35      Goto 
  272. ;    20      Let 
  273. ;    2       Print 
  274. ;    28      PrintLn 
  275. ;    25      If 
  276. ;    1       Delete 
  277. ;    3       InputStr 
  278. ;    1       Gosub 
  279. ;    1       Return
  280. ;    1       Delay 
  281. ;    1       Inc 
  282. ;    1       Newline
  283. ;    3       Newlines 
  284. ;    4       Call 
  285. ;    1       EndFunc
  286. ;    2       DOpen 
  287. ;    3       DCloseAll
  288. ;    1       DnCreate 
  289. ;    20      DTop 
  290. ;    21      DGo 
  291. ;    1       DSkip 
  292. ;    1       DTag 
  293. ;    1       DSeek 
  294. ;    4       DGet 
  295. ;    40      DPut 
  296. ;
  297. ;
  298. ; ■ Functions used :
  299. ;
  300. ;    1       *
  301. ;    2       /
  302. ;    22      +
  303. ;    3       -
  304. ;    14      ==
  305. ;    3       <
  306. ;    3       <=
  307. ;    3       >
  308. ;    1       >=
  309. ;    11      !
  310. ;    6       Trim()
  311. ;    4       Random()
  312. ;    2       String()
  313. ;    1       Mask_Ascii()
  314. ;    8       PPEPath()
  315. ;    2       PcbNode()
  316. ;    1       GetEnv()
  317. ;    1       ToInteger()
  318. ;    1       Mixed()
  319. ;    1       DEof()
  320. ;    1       DRecNo()
  321. ;    19      DGet()
  322. ;    1       DChkStat()
  323. ;
  324. ;------------------------------------------------------------------------------
  325. ;
  326. ; Analysis flags : C
  327. ;
  328. ; C - Call child PPE ■ 3
  329. ;     This is usually normal, but may be a tricky way to launch some
  330. ;     sysop-only commands.
  331. ;     ■ Search for : CALL
  332. ;
  333. ;------------------------------------------------------------------------------
  334. ;
  335. ; Postprocessing report
  336. ;
  337. ;    0       For/Next
  338. ;    1       While/EndWhile
  339. ;    7       If/Then or If/Then/Else
  340. ;    1       Select Case
  341. ;
  342. ;------------------------------------------------------------------------------
  343. ;                 AEGiS Corp - Break the routines, code against the machines!
  344. ;------------------------------------------------------------------------------
  345.